The present disclosure is directed to encryption systems for devices. In particular, the present disclosure is directed to random number generators for generating seeds for pseudorandom number generators in devices, such as data storage devices.
There are many applications that require the fast production of random numbers having high levels of unpredictability. Such applications include cryptographic key generation in key servers, session keys, and nonces; simulations; Monte Carlo or randomized computations; dithering; gambling; video games; and the like. Often buffered, off-line generated random numbers may be used. However, the necessary large secure buffer is typically expensive and may introduce a significant latency for the buffer to be filled.
Another application of highly unpredictable random numbers is related to securing data storage devices. Common techniques for securing data storage devices include the use of cryptographic algorithms that rely on secret values, such as passwords or cryptographic keys. Such algorithms are typically open to the public and as such rely heavily on the secret quantity. Thus, the strength of the secret value is a function of how easy it is to guess the value. In general, the strongest secret quantity will be one that is selected through a true random process, such as random number generation. Accordingly, there is an ongoing need for techniques and systems for efficiently generating random numbers for securing data storage devices.